<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>

		<script src="zidian.js"></script>
		<script src="huadong.js"></script>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		//点击其他地饭也有反应
		function onMouseUp(G) {
			var kq = panduan,
				U = this['drag'];
			//如果是打开或关闭滑块 就会走这个方法
			if ('dragend' === U['status']) {
				//修改 drag对象的开始时间为0
				return void Object['assign'](U, {
					'beginTime': 0
				});
			}
			//如果正在滑动就走下面的方法
			//就把 this['initialDrag'] 初始化数据 给到drag属性  因为是放开了，所以要全部归零不管完成没完成都要重置
			Object['assign'](U, this['initialDrag']);
			//tracedata跟踪数据  这个只要鼠标移动就会被记录  
			var D = T['sample'](this['traceData'], V),
				//再拿到token
				w0 = this[kq(0x2d0)]['state']['token'],
				//这个是 被控制的滑块图片  这个是要计算什么吗？ 滑块的滑动距离 除以 验证码图片的宽度 可能结果 0.00109375  把它变成字符串
				//然后吧token 和刚刚算出的结果进行N运算 然后再进行j运算
				w1 = j(N(w0, (parseInt(this['$jigsaw']['style']['left'], 10)) / (this['width'] * 100) + '')),
				// 然后在用unique2DArray方法计算 atomTraceData 这个叫做原子跟踪数据的东西 
				w2 = A(T['unique2DArray'](this['atomTraceData'], 2));
			//算好后调用onVerifyCaptcha这个方法
			this['onVerifyCaptcha']({
				'data': JSON[kq(0x6ae)]({
					'd': j(D['join'](':')),
					'm': '',
					'p': w1,
					'f': j(N(w0, w2[kq(0x5f8)](','))),
					'ext': j(N(w0, this[kq(0xee)] + ',' + this['traceData']['length']))
				})
			});
		}



		function onMouseDown(G) {
			var kY = panduan;
			// 如果cancelable（可取消） 不等于false  就不执行 G['preventDefault']()
			G['event']['cancelable'] !== !1 && G['preventDefault'](),
				//鼠标点击数+1
				this['mouseDownCounts']++,
				//width 就被赋予整个滑动图片和下面滑动条的宽度
				this['width'] = this['$el']['offsetWidth'];
			// u被赋值 
			var U = this['$store']['state'],
				D = U['load'],
				w0 = U['verifyStatus'];
			//如果当前状态等于done 并且  验证状态为空
			if ('done' === D['status'] && !w0) {
				var w1 = G['clientX'],
					w2 = G['clientY'],
					w3 = this['drag'];
				//如果滑动结束的话 就把下面的对象跟w3合并起来
				'dragend' === w3['status'] && Object['assign'](w3, {
					'beginTime': T['now'](),
					'clientX': w1,
					'startX': w1,
					'clientY': w2,
					'startY': w2,
					'dragX': 0
				});
			}
		}

		function onMouseMove(G) {
			var kV = panduan,
				U = G['clientX'],
				D = G['clientY'],
				w0 = this['drag'],
				w1 = w0['status'],
				w2 = w0['beginTime'],
				w3 = w0['startX'];
			//先把drag的开始时间赋值给w0的status 
			//然后在用鼠标屏幕位置减去开始位置
			//w0['startX']这个是开始点
			//clientX  是当前屏幕位置
			(w0['status'] = w2) && (G['clientX'] - w0['startX'] > 3) && ('dragend' === w0['status'] ? 'dragstart' : w1)
			if ('dragend' !== w0['status']) {
				//如果没有滑动结束
				!(G['type']['indexOf']('touch') !== -1 && K['supportPassive'] || G['event']['cancelable'] !== !1) && G[
						'preventDefault'](),
					Object['assign'](w0, {
						'clientX': U,
						'clientY': D,
						'dragX': U - w0['startX']
					});
				//w4 拿到token  
				var w4 = this['$store']['state']['token'],
					//随机一个数字  w0['dragX']  很有可能是滑动 X    w0['clientY']是鼠标现在距离顶部的高度（去掉地址栏）  w0['startY']开始画鼠标点击时候的高度
					w5 = [Math['round'](w0['dragX'] < 0 ? 0 : w0['dragX']), Math['round'](w0['clientY'] - w0['startY']),
						T['now']() - w0['beginTime']
					];
				//把随机计算出的数字放入atomtracedata
				this['atomTraceData']['push'](w5);
				//计算出一个数
				var w6 = N(w4, w5 + '');
				//计算出的数放如tracedata
				this['traceData']['push'](w6),
					//如果当前是开始滑动那么就执行onMouseMoveStart
					'dragstart' === w0['status'] && this['onMouseMoveStart'](G),
					//如果当前是滑动中那么就执行onMouseMoving
					'dragging' === w0['status'] && this['onMouseMoving'](G);
			}
		}




		function onMouseMoveStart(G) {
			var kI = kz,
				U = K['getComputedStyle'](this['$slider'], 'left'),
				D = K['find']('.yidun_tips__text', this['$el']);
			K[kI(0x77b)](D, ''),
				Object['assign'](this['drag'], {
					'status': 'dragging',
					'startLeft': parseInt(U['slice'](0, -2), 10)
				});
		}

		function onMouseMoving() {
			var kt = kz,
				G = this['$slider']['offsetWidth'],
				U = this['$jigsaw']['offsetWidth'],
				D = this['restrict'](this['$slider']);
			this['$slider']['style']['left'] = D + 'px',
				this['$jigsaw']['style']['left'] = this['restrict'](this['$jigsaw'], G - U) + 'px',
				K[kt(0x175)](this['$control'], kt(0x47f)),
				this['$slideIndicator'][kt(0x331)]['width'] = D + G + 'px',
				this['changeSlideIcon'](this[kt(0x342)]['slideIconMoving']);
		}
	</script>
</html>